<?dyhb
abstract class TemplateGtkGladeWidgetCompilerBase extends TemplateObjCompilerBase implements ITemplateAutoloadableProcessor,ITemplateObjCompiler{

	/**
	 * 编译
	 *
	 * @access public
	 * @param $oObject TemplateGtkGladeWidget Widget对象
	 * @return void
	 */
	public function compile(TemplateObj $oObject){}

	/**
	 * 编译窗体创建代码
	 *
	 * @access public
	 * @param $oObject TemplateGtkGladeWidget Widget对象
	 * @return string
	 */
	abstract protected function compileCreateWidget_(TemplateGtkGladeWidget $oObject);

	/**
	 * 编译子窗体并加入到父窗体
	 *
	 * @access public
	 * @param $oParentWidget TemplateGtkGladeWidget 父窗体
	 * @param $oChildWidget TemplateGtkGladeWidget 子窗体
	 * @param $oPacking TemplateGtkGladeWidgetPacking 打包方式
	 * @static
	 * @return void
	 */
	abstract protected function compileChildWidgetPacking_(TemplateGtkGladeWidget $oParentWidget,TemplateGtkGladeWidget $oChildWidget,TemplateGtkGladeWidgetPacking $oPacking);

	/**
	 * SetStringInt
	 *
	 * @access public
	 * @param $oObject
	 * @param $sCompiled
	 * @param $sPropertyName
	 * @param $bConst
	 * @param $sSetMethodName
	 * @return void
	 */
	protected function setStringInt_(TemplateGtkGladeWidget $oObject,&$sCompiled,$sPropertyName,$bString=true,$sSetMethodName=null){}

	/**
	 * SetBool
	 *
	 * @access public
	 * @param $oObject
	 * @param $sCompiled
	 * @param $sPropertyName
	 * @param $sSetMethodName
	 * @return void
	 */
	protected function setBool_(TemplateGtkGladeWidget $oObject,&$sCompiled,$sPropertyName,$sSetMethodName=null){}

	/**
	 * 获取属性
	 *
	 * @access public
	 * @param $oObject TemplateGtkGladeWidget
	 * @param $sName string
	 * @param $sDefault string
	 * @return string
	 */
	protected function getProperty_(TemplateGtkGladeWidget $oObject,$sName,$sDefault){}

	/**
	 * 创建子窗口
	 *
	 * @access public
	 * @param $oObject TemplateGtkGladeWidget
	 * @param $sName string
	 * @param $sDefault string
	 * @return string
	 */
	protected function createChildWidget_(TemplateGtkGladeWidget $aChildWidget){}

	/**
	 * 编译回调
	 *
	 * @access protected
	 * @param $sSource string 源文
	 * @return string
	 */
	protected function compileCallback_($sSource){}

}
